Skip to main content
[Experimental] Get the current user's root folders across their account, for one content type

Authorizations

Authorization
string
header
required

HTTP Basic authentication using global administrator credentials (username and password).

Headers

X-Enable-Preview
string
default:true
required

Opt-in header required to access this experimental endpoint. Must be "true" (case-insensitive).

Query Parameters

content_type
enum<string>
required
Available options:
DASHBOARDS,
REPORTS

Response

200 - application/vnd.composer.v3+json

OK

id
string

Unique folder identifier

name
string
parent_id
string

Parent folder id; null means this is a root folder

materialized_path
string

Full path from root; null for legacy folders not yet backfilled

depth
integer<int32>

Tree depth; root = 0, maximum = the configured max depth

child_count
integer<int64>

Number of direct subfolders. An unfiltered total: unlike the /children listing it is not pruned by the caller's READ permission, so it can exceed what that listing returns

item_count
integer<int64>

Number of dashboards/reports mapped directly into this folder. An unfiltered total, on the same basis as child_count

folder_type
enum<string>

The folder's type

Available options:
CONNECTIONS,
SOURCES,
VISUALS,
DASHBOARDS,
REPORTS,
PRIVATE,
CUSTOM
content_type
enum<string>

The library this folder organizes (DASHBOARDS or REPORTS); null when untagged. The same value the content_type filter on GET /tree matches on, so a client can tell which library each returned node actually belongs to

Available options:
DASHBOARDS,
REPORTS
project_id
string

Id of the project that owns this folder. GET /tree now spans every project the account has, so this disambiguates which project a given root belongs to

visibility
enum<string>
Available options:
PRIVATE,
CUSTOM
inheritance_state
enum<string>
Available options:
INHERIT,
EXPLICIT
project_type
enum<string>
Available options:
DEFAULT,
GLOBAL,
CUSTOM,
PERSONAL,
LIBRARY_CUSTOM
permission_inherited
boolean

True when this folder's permissions come from its nearest explicit ancestor. False for a root even when its inheritance_state is INHERIT, because a root has no ancestor to inherit from and its own ACL governs

permissions
enum<string>[]

The current caller's effective permissions on this folder, as an array of FolderAclBit names (READ, WRITE, CREATE, DELETE, ADMINISTER, OWNER), e.g. ["READ","WRITE"]

Available options:
READ,
WRITE,
CREATE,
DELETE,
ADMINISTER,
OWNER
expanded
boolean

Whether the current caller has this node expanded in their folder tree. Never null: a folder the caller has never expanded reports false. The caller's own UI preference, not a permission — it rides along on the tree reads instead of a separate endpoint